/*scan_str.c--使用scanf()*/
#include <stdio.h>
/**
 * scanf 可以指定宽度，比gets安全，但也不安全，忘记指定宽度，也是非常危险的。
 * 
 * 运行结果1：两个名字的字符个数都未超过字段宽度
Please enter 2 names.
Jesse Jukes
I read the 2 names Jesse and Jukes.
 * 运行结果2：只读入了Applebottham的前10个字符Applebotth（因为使用了%10s转换说明）
Please enter 2 names.
Liza Applebottham
I read the 2 names Liza and Applebotth.
 * 运行结果3：Portensia的后4个字符nsia被写入name2中，因为第2次调用scanf()时，从上一次调用结束的地方继续读取数据。
Please enter 2 names.
Portensia Callowit
I read the 2 names Porte and nsia.
 * 结论：scanf读入的规则有两个，1是达到了指定宽度，2是遇到空白字符。
*/
int main(void)
{
    char name1[11], name2[11];
    int count;
    printf("Please enter 2 names.\n");
    count = scanf("%5s %10s", name1, name2);
    printf("I read the %d names %s and %s.\n", count, name1,
           name2);
    return 0;
}